<?php

App::import('Model', 'Expense');
App::import('Model', 'PaymentDue');
App::import('Model', 'Property');
App::import('Model', 'Person');
App::import('Model', 'Building');
App::import('Model', 'RefinancingPlan');

class InstallmentsController extends AppController {

	var $name = 'Installments';
	
	 /* De acuerdo a las propiedades que puede ver, agarro sus expensas
        * y dentro de ellas las que tiene configurado un planId*/
    function get_plan_id ()
	{   
        $expense = new Expense;
        $permit  = $this->Session->read('permit_property');
		if ($permit != null){
            $data = null;        
            $new  = null;        
            foreach ($permit as $key => $value) {
                $property_id = $value["property_id"];
				$sql = "select refinancing_plan_id 
                        from expenses 
						where property_id = $property_id 
						and refinancing_plan_id is not null "; 
				//saco  property_id = $property_id and ; para poder ver todas
                $data[] = $expense->query($sql);    
			}   
            foreach ( $data as $key1 => $value1)
            {   
                foreach ( $value1 as $key2 => $value2)
                {   
                    $new[$key2] = $value2["expenses"]["refinancing_plan_id"];
                }   
            }   
		}   
        return $new;
    }   


	function index() {
				//$this->Installment->recursive = 0;
		// Tomo la fecha de creacion del 1er cuota del plan
		// Para mostrar la cuota del mes correspodiente
	//	$data = $this->Installment->read(null,1);
	//	$nro  = $this->get_diff($data["Installment"]["created"]);
   	//	$permit = $this->get_plan_id();
	//	if ($permit != null){
	//		$data = null;    
	//		$new  = null;    
	//		foreach ($permit as $key => $value) {
	//			$this->paginate = array(
	//						 'conditions' => array( 'Installment.refinancing_plan_id' => $value,
	//												'installment_number' => $nro )
	//					 );  
//
//			//	$this->paginate = array();
//				$data[$key]  = $this->paginate();
//			}   
//			foreach ( $data as $key1 => $value1)
//			{   
//				if ( $value1 != null ) 
//					$new[$key1] = $value1[0];
//			}   
//				$this->set('installments', $new);
//		}else{
//		  $this->Session->setFlash(__('You have nothing assigned', true));
//		  $this->redirect(array('controller' => 'users', 'action' => 'welcome'));
//		}   
                $this->Installment->recursive = 0;
                $this->set('installments', $this->paginate());
	}

	function view($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Invalid installment', true));
			$this->redirect(array('action' => 'index'));
		}
		$this->set('installment', $this->Installment->read(null, $id));
	}

	function add() {
		if (!empty($this->data)) {
			$this->Installment->create();
			if ($this->Installment->save($this->data)) {
				$this->Session->setFlash(__('The installment has been saved', true));
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('The installment could not be saved. Please, try again.', true));
			}
		}
		$refinancingPlans = $this->Installment->RefinancingPlan->find('list');
		$moratoriumRefinancingPlans = $this->Installment->MoratoriumRefinancingPlan->find('list');
		$this->set(compact('refinancingPlans', 'moratoriumRefinancingPlans'));
	}

	function edit($id = null) {
		if (!$id && empty($this->data)) {
			$this->Session->setFlash(__('Invalid installment', true));
			$this->redirect(array('action' => 'index'));
		}
		if (!empty($this->data)) {
			if ($this->Installment->save($this->data)) {
				$this->Session->setFlash(__('The installment has been saved', true));
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('The installment could not be saved. Please, try again.', true));
			}
		}
		if (empty($this->data)) {
			$this->data = $this->Installment->read(null, $id);
		}
		$refinancingPlans = $this->Installment->RefinancingPlan->find('list');
		$moratoriumRefinancingPlans = $this->Installment->MoratoriumRefinancingPlan->find('list');
		$this->set(compact('refinancingPlans', 'moratoriumRefinancingPlans'));
	}

	function delete($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Invalid id for installment', true));
			$this->redirect(array('action'=>'index'));
		}
		if ($this->Installment->delete($id)) {
			$this->Session->setFlash(__('Installment deleted', true));
			$this->redirect(array('action'=>'index'));
		}
		$this->Session->setFlash(__('Installment was not deleted', true));
		$this->redirect(array('action' => 'index'));
	}


	 function pay ( $id = null ){
	//PRUEBA....................
	    
	$data    = $this->Installment->read(null,$this->data["Installment"]["id"]);
	//var_dump($this->calcularDeudaPreviaEInteresesPlan($dataT));

	//die();
	//PRUEBA....................

        if (!$id && empty($this->data)) {
            $this->Session->setFlash(__('Invalid expense', true));
            $this->redirect(array('action' => 'index'));
         }
        if (!empty($this->data)) {
			// Me traigo todo desde el post
			$amount       = $this->data["Installment"]["installment"]; // Cuota del mes
            $previous_due = $this->data["Installment"]["previous_due"]; // Monto adeudado
            $total_interest = $this->data["Installment"]["total_interest"]; // Intereses
            $month_new_interests = $this->data["Installment"]["month_new_interests"];
            $next_month_interests = $this->data["Installment"]["next_month_interests"];
            $payment_on_account = $this->data["Installment"]["payment_on_account"]; // Pagado hasta el momento
            $total = $this->data["Installment"]["total"]; // Total adeudado por la propiedad
            $payment = $this->data["Installment"]["payment"]; // monto ingresado a pagar
            $interests_debt = $this->data["Installment"]["interests_debt"];
            $amount_debt = $this->data["Installment"]["amount_debt"];
			$install_debt = $this->data["Installment"]["installment_debt"];

		    // Verificaciones
            // La deuda total debe ser mayor a 0
            if ($total <= 0) {
                $this->Session->setFlash(__('Payment is complete.', true));
                $this->redirect(array('action' => 'index'));
            }
            // El monto ingresado debe ser como mínimo el total de los intereses adeudados
            if ($payment < $interests_debt){
                $this->Session->setFlash(__('The payment, at least, must cover the interest amount.', true));
				$this->redirect(array('action' => 'pay', $this->data["Installment"]["id"]));
			}
			
            $install_data         = $this->Installment->read(null,$this->data["Installment"]["id"]);

			// Le asigno la deuda previa
			$install_data['Installment']['previous_debt'] = $previous_due;

			$expen        = new Expense;
			$expense_data = $expen->find('all', array('conditions' => array('Expense.refinancing_plan_id' => 
			 	                               $data['Installment']['refinancing_plan_id']))); 
			
			$build_id   = $expense_data[0]["Property"]["building_id"];  
			// Obtengo el building para setearlo los fondos          
			$build      = new Building;
			$build_data = $build->read(null, $build_id);
			$ref_plan   = new RefinancingPlan;
			$plan_data   = $ref_plan->read(null,$data['Installment']['refinancing_plan_id']);

            $expenditure_type = $expen->getExpenditureTypeSource($expense_data[0]['Expense']);
			
			// Si paga de mas no lo vamos a tener en cuenta.
			if ( $payment > $total){
				$aux = $total;
				$install_data["Installment"]["payment_amount"] += $total;
	//			$msg = 'Payment is greater than the total. Only considered ' . $total;
			    $msg =	"Payment done. Your change is $ " . abs($payment - $total);
				$this->Session->setFlash(__($msg, true));
			}else{
			    $aux = $payment;
				$install_data["Installment"]["payment_amount"] += $payment;
	            $this->Session->setFlash(__('Payment done ', true));
			}
				$install_data["Installment"]["payment_date"] = date( 'Y-m-d H:i:s');

			// Descuento los intereses
            if ($interests_debt > 0){
                $plan_data['RefinancingPlan']['interest_balance'] -= $interests_debt ;
				$aux -= $interests_debt;
            }

			// Si queda descuento de la deuda previa si falta
            if (($amount_debt > 0) && ($aux > 0)){
                $amount_debt_payment = min($aux, $amount_debt);
				$plan_data['RefinancingPlan']['amount_balance'] -= $amount_debt_payment;
                $aux -= $amount_debt_payment;
			}
            // Si queda descuento del monto del installment
            if (($install_debt > 0) && ($aux > 0)){
                $install_debt_payment = min($aux, $install_debt);
				$plan_data['RefinancingPlan']['amount_balance'] -= $install_debt_payment;
                $aux -= $install_debt_payment;
            }

			// Sumo a los fondos del edificio
            if ($expenditure_type == "REGULAR"){
                $build_data['Building']['regular_fund'] += $payment;
            } else {
                $build_data['Building']['special_fund'] += $payment;
            }

            // Guardo todos los cambios
	
			// Building
			$build->save($build_data);
			// Refinancing plan
			$ref_plan->save($plan_data); 
            // Installment
            $this->Installment->save($install_data);

            $this->redirect(array('action' => 'index'));
        }   
        if (empty($this->data)) {
			// Me fijo si pago algo a lo largo del plan.
			$pay    = $this->paid_installment($id);
        	$amount = $this->Installment->read(null,$id);
			if ($pay)
			{
		        $this->Session->setFlash(__('The Installment has been paid a totaling '.                 $amount["Installment"]["payment_amount"], true));
				$this->data["Installment"]["payment_on_account"] = round($amount["Installment"]["payment_amount"], 2) ;
			}  
			$this->set('status','disabled');
			$this->set('status1','enabled');
			
			$this->data["Installment"]["id"] = $id;
			$plan = $this->Installment->read(null, $id);
			
			// Array completo con la info que preciso
			$planFinantialInfo = $this->Installment->getInstallmentFinantialInformation($plan);
			// Obtengo el nro de la cuota a pagar
			$nro  = $plan['Installment']['installment_number'];
			$this->set('nro', $nro);
			
			//Seteamos todo
			$this->data["Installment"]["installment"] = round($planFinantialInfo["amount"], 2); 
			$resultDeudaPrevia=$this->calcularDeudaPreviaEInteresesPlan($data);
			$this->data["Installment"]["previous_due"] = round($resultDeudaPrevia[0], 2) ;
			$person_id = $plan["RefinancingPlan"]["person_id"];
			//Obtengo el nombre del que esta ocupando la propiedad
			$name_occupant = $this->get_name_people($person_id);
			$this->set('complete_name', $name_occupant);
            $this->data["Installment"]["interest(%)"] = round($planFinantialInfo["interest(%)"], 4); 
			$this->data["Installment"]["total_interest"] = round($planFinantialInfo["interests"],2);
			/*ACA VA TU LLAMADA MIGUEL, HAY QUE REEMPLAZAR $plan["Installment"]["previous_debt"] */
			/*POR EL LLAMADO A LA FUNCION QUE VOS HAGAS  */
			$this->data["Installment"]["total"] = round($resultDeudaPrevia[0] +
                                                  $planFinantialInfo["debt"] + $planFinantialInfo["interests"], 2);
            $this->data["Installment"]["id"] = $id;
	        // Intereses agregados
            $this->data['Installment']['next_month_interests'] = round($planFinantialInfo['next_month_interests'], 2);
            $this->data['Installment']['month_new_interests'] = round($planFinantialInfo['month_new_interests'], 2);
            // Pagado hasta el momento
            $this->data['Installment']['payment_on_account'] = round( $planFinantialInfo['payment_amount'], 2);
            // Total adeudado por la propiedad
            $this->data['Installment']['interests_debt'] = round( $planFinantialInfo['interests_debt'], 2); 
			$this->data['Installment']['amount_debt'] = round( $planFinantialInfo['amount_debt'], 2);
			$this->data['Installment']['installment_debt'] = round( $planFinantialInfo['installment_debt'], 2);
			// Le sumo al total lo que debia.
            $this->data['Installment']['total'] = round($planFinantialInfo['debt']+$resultDeudaPrevia[0], 2);
			// Si ya pago todo no lo mando a la otra pantalla
			if ($this->data['Installment']['total'] == 0){
				$this->Session->setFlash(__('Payment is complete.', true));
                $this->redirect(array('action' => 'index'));			
			}
		}   
    }  

   function get_name_people ( $person_id )
    {
        $people = new Person;
        $peoples = $people->read(null,$person_id);
        $name = $peoples['Person']['first_name'];
        $surname = $peoples['Person']['surname'];
        $complete_name = $surname . ', '. $name;
        return $complete_name;
    }


	function get_diff( $date )
	{
		$month   = substr($date,5,2);
		$current = date("m");
		if ( $current < $month )
		{
			$gap = 12 - $month + $current;
		}else{
			$gap = $current - $month + 1 ;
		}
		return $gap;
	}


    function get_second_date ($build_id)
    {
            $payment = new PaymentDue;
            $payment_data = $payment->read(null, $build_id);
            $second_due_date = $payment_data["PaymentDue"]["second_due_date"];

            $month = date('m');
            $year  = date('Y');
            $second_date = $year.'-'.$month.'-'.$second_due_date;
            return $second_date;
    }

    function paid_installment ($id)
    {
        $data = $this->Installment->read(null,$id);
		if (isset($data['Installment']['payment_date']))
            return true;
        return false;
    }

    
    function calcularDeudaPreviaEInteresesPlan($dataT){
	return $this->calcularDeudaPreviaEInteresesPlanRec($dataT, $dataT["Installment"]["installment_number"]);
    }
    

    //retorna un array de dos posicones, el primer dato es la deuda previa y el segundo los intereses: Recursiva. Solo debe ser llamada por calcularDeudaPreviaEInteresesPlan
    function calcularDeudaPreviaEInteresesPlanRec($dataT, $installmentNumber){
	//var_dump("LLLAMO");
	$total_adeudado=0;
	$intereses=0;
	if($installmentNumber==0){ //punto de corte, por si nunca pago nada
	  $result[0]=$total_adeudado+$intereses;
	  $result[1]=0; //en la primera en principio hay 0 interes..
	  return $result;
	}
      //quiero el edificio. Me traigo la expensa asociada al plan, para obtener el building
        $expen = new Expense; //me quedo con este objeto para usar sus metodos
        $info  = $expen->find('all', array('conditions' => array('Expense.refinancing_plan_id' => $dataT["Installment"]["refinancing_plan_id"])));

	$build_id = $info[0]["Property"]["building_id"];  
	$building = new Building;
        $building_data = $building->read(null,$build_id);
      //EN $building_data tengo el edificio sobre el que se refiere en el plan

      // sistema de liquidación de intereses ('SECOND_DUE_DATE','ON_DATE','DEFERRED')
        $sistemaLiq = $building->obtenerInterestSchemeType($building_data['PaymentDue']);


    $diaPrimerVencimiento = $building_data['PaymentDue']['first_due_date'];
        $diaSegundoVencimiento = $building_data['PaymentDue']['second_due_date'];

      //ultimo Installments
    $installment = new Installment;
    $ultimo_installment_data = $installment->find('first', array('conditions' => array('Installment.refinancing_plan_id' => $dataT["Installment"]["refinancing_plan_id"], 'Installment.installment_number' => $installmentNumber-1  )));
     // var_dump($installment_data);
    
    $fechaInstallment = new DateTime(substr($ultimo_installment_data['Installment']['created'], 0, 10)); //fecha de creacion del installment
    //var_dump($ultimo_installment_data['Installment']['created']);

    //EMPIEZO A CALCULAR
    //me fijo si esta paga, la fecha de pago
            if ($ultimo_installment_data['Installment']['payment_date'] == NULL) {//no pago. Aca hago llamados recursivos.
                //chequeo el tipo de penalizacion
                if ($sistemaLiq == 'SECOND_DUE_DATE') {
			
		    $dateVencim=new DateTime($fechaInstallment->format('Y') . "-" . $fechaInstallment->format('m') . "-" . $diaSegundoVencimiento);
		    $dateHoy=new DateTime("now");
                    $monto_adeudado_anterior = $this->calcularDeudaPreviaEInteresesPlanRec($dataT, $installmentNumber-1);

// 		    if ( $dateVencim>$dateHoy ){
// 			$monto_vencido_anterior = $ultimo_installment_data['Installment']['amount']; //OJO, cambio porque no estaba calculando el ['second_due_amount']. VERRRRR
// 		    }else{
// 		      $monto_vencido_anterior = $ultimo_installment_data['Installment']['second_due_amount'];
// 		      var_dump("secDUXX");
// 		      var_dump(date_format(new DateTime("now"),'Y-m-d'));
// 		      var_dump(date_format($dateVencim,'Y-m-d'));
// 		      }
		    $monto_vencido_anterior = $ultimo_installment_data['Installment']['second_due_amount'];
		    $interesesAnteriores = $monto_adeudado_anterior[1];
                    $total_adeudado = $interesesAnteriores + $ultimo_installment_data['Installment']['interest'] + $monto_adeudado_anterior[0]+$monto_vencido_anterior; //sumo los intereses
	  
		      //intereses
		  //  $diasDesdeSegundaFechaHastaAhora = $expen->gapDates($fechaInstallment->format('Y') . "-" . $fechaInstallment->format('m') . "-" . $diaSegundoVencimiento);
		   // $interesesMonto = $diasDesdeSegundaFechaHastaAhora * ($building_data['PaymentDue']['annual_rate'] / 365) * $monto_vencido_anterior;
		    
		    $diasDesdePrincipioMes = $expen->gapDates($fechaInstallment->format('Y') . "-" . $fechaInstallment->format('m') . "-" . "1");		    
		    $interesesDeudaPrevia  =  $diasDesdePrincipioMes * ($building_data['PaymentDue']['annual_rate'] / 365) * ($interesesAnteriores + $ultimo_installment_data['Installment']['interest'] + $monto_adeudado_anterior[0]+$monto_vencido_anterior);//en la deuda previa incluyo intereses
		    
		    $intereses=$interesesDeudaPrevia;

                }
                if ($sistemaLiq == 'ON_DATE') {
                    $monto_adeudado_anterior = $this->calcularDeudaPreviaEInteresesPlanRec($dataT, $installmentNumber-1);
                    $monto_vencido_anterior = $ultimo_installment_data['Installment']['amount'];
		    $interesesAnteriores = $monto_adeudado_anterior[1];
                    $total_adeudado = $interesesAnteriores + $ultimo_installment_data['Installment']['interest'] + $monto_adeudado_anterior[0] + $monto_vencido_anterior;

                  //  $diasDesdePrimeraFechaHastaAhora = $expen->gapDates($fechaInstallment->format('Y') . "-" . $fechaInstallment->format('m') . "-" . $diaPrimerVencimiento);
                   // $interesesMonto = $diasDesdePrimeraFechaHastaAhora * ($building_data['PaymentDue']['annual_rate'] / 365) * $monto_vencido_anterior;

		     $diasDesdePrincipioMes = $expen->gapDates($fechaInstallment->format('Y') . "-" . $fechaInstallment->format('m') . "-" . "1");
		    $interesesDeudaPrevia  =  $diasDesdePrincipioMes * ($building_data['PaymentDue']['annual_rate'] / 365) * ($interesesAnteriores + $ultimo_installment_data['Installment']['interest'] + $monto_adeudado_anterior[0] + $monto_vencido_anterior);
		    
		    $intereses=$interesesDeudaPrevia;
                }
                if ($sistemaLiq == 'DEFERRED') {
                    $monto_adeudado_anterior = $this->calcularDeudaPreviaEInteresesPlanRec($dataT, $installmentNumber-1);
                    $monto_vencido_anterior = $ultimo_installment_data['Installment']['amount'];
		    $interesesAnteriores = $monto_adeudado_anterior[1];
                    $total_adeudado = $interesesAnteriores + $ultimo_installment_data['Installment']['interest'] + $monto_adeudado_anterior[0] + $monto_vencido_anterior;

                  //  $diasDesdePrimeraFechaHastaAhora = $expen->gapDates($fechaInstallment->format('Y') . "-" . $fechaInstallment->format('m') . "-" . $diaPrimerVencimiento);
                   // $interesesMonto = $diasDesdePrimeraFechaHastaAhora * ($building_data['PaymentDue']['annual_rate'] / 365) * $monto_vencido_anterior;

		     $diasDesdePrincipioMes = $expen->gapDates($fechaInstallment->format('Y') . "-" . $fechaInstallment->format('m') . "-" . "1");
		    $interesesDeudaPrevia  =  $diasDesdePrincipioMes * ($building_data['PaymentDue']['annual_rate'] / 365) * ($interesesAnteriores + $ultimo_installment_data['Installment']['interest'] + $monto_adeudado_anterior[0] + $monto_vencido_anterior);
		    
		    $intereses=$interesesDeudaPrevia;
                }
            }else{//pago
                //pago, deberia chequear cuando pago (para ver que interes corresponde) y cuanto.
                $fechaDePago = $ultimo_installment_data['Installment']['payment_date'];
                $montoPagado = $ultimo_installment_data['Installment']['payment_amount'];

                $diasGap = $expen->gapDates($fechaDePago);
                //chequeo el tipo de penalizacion
                if ($sistemaLiq == 'SECOND_DUE_DATE') {
                    $monto_adeudado_anterior = $ultimo_installment_data['Installment']['previous_debt'];
		    $interesesAnteriores = $ultimo_installment_data['Installment']['interest'];
                   
                        if ($building->pagoAntesDeFechaVencimiento($diaPrimerVencimiento, $fechaDePago))
			     {
                            $monto_vencido_anterior = $ultimo_installment_data['Installment']['amount']; 
			   // $interesesMonto=0;
			  //var_dump("DU".$diaSegundoVencimiento." y ".$fechaDePago);
			      }
			  else{
                            $monto_vencido_anterior=$ultimo_installment_data['Installment']['second_due_amount'];//OJO, cambio porque no estaba calculando el ['second_due_amount']. VERRRRR
			//  var_dump("SECDU");
			    }

			  //intereses
			   $diasDesdePrincipioMes = $expen->gapDates($fechaInstallment->format('Y') . "-" . $fechaInstallment->format('m') . "-" . "1");
			  $interesesDeudaPrevia  =  $diasDesdePrincipioMes * ($building_data['PaymentDue']['annual_rate'] / 365) * ($interesesAnteriores + $monto_adeudado_anterior + $monto_vencido_anterior - $montoPagado);
		    
		    //CALCULO FINAL
                    $total_adeudado =$interesesAnteriores + $monto_adeudado_anterior + $monto_vencido_anterior - $montoPagado;
		    $intereses=$interesesDeudaPrevia;

                }
                if ($sistemaLiq == 'ON_DATE') {
                    $monto_adeudado_anterior = $ultimo_installment_data['Installment']['previous_debt'];
                    $monto_vencido_anterior = $ultimo_installment_data['Installment']['amount'];
		    $interesesAnteriores = $ultimo_installment_data['Installment']['interest'];

		    $diasDesdePrincipioMes = $expen->gapDates($fechaInstallment->format('Y') . "-" . $fechaInstallment->format('m') . "-" . "1");
		    $interesesDeudaPrevia  =  $diasDesdePrincipioMes * ($building_data['PaymentDue']['annual_rate'] / 365) * ($interesesAnteriores + $monto_adeudado_anterior + $monto_vencido_anterior - $montoPagado);
                 
		    //CALCULO FINAL
                            $total_adeudado = $interesesAnteriores + $monto_adeudado_anterior + $monto_vencido_anterior - $montoPagado; 
			    $intereses = $interesesDeudaPrevia;

//                     if ($building->pagoAntesDeFechaVencimiento($diaPrimerVencimiento, $fechaDePago)) {
//                         $monto_vencido_anterior = $ultimo_installment_data['Installment']['amount'];
//                         $total_adeudado = $monto_adeudado_anterior + $monto_vencido_anterior - $montoPagado; //CALCULO FINAL
//                     } else {
//                         if ($building->pagoAntesDeFechaVencimiento($diaSegundoVencimiento, $fechaDePago)) {
//                             $monto_vencido_anterior = $ultimo_installment_data['Installment']['amount']; 
//                             $total_adeudado = $monto_adeudado_anterior + $monto_vencido_anterior - $montoPagado; //CALCULO FINAL
//                         } else {//LA MORA LA CALCULO DESPUES DEL SEGUNDO VENCIMIENTO
//                             $monto_vencido_anterior = $ultimo_installment_data['Installment']['second_due_amount'];
//                             $diasDeAtraso = $expen->gapDatesPeriodo($fechaInstallment->format('Y') . "-" . $fechaInstallment->format('m') . "-" . $diaSegundoVencimiento, $fechaDePago);
// 
//                             //CALCULO FINAL
//                             $total_adeudado = $monto_adeudado_anterior + $monto_vencido_anterior;
//                             $intereses = $diasDeAtraso * ($building_data['PaymentDue']['annual_rate'] / 365) * $total_adeudado;
//                             $interesesMenosPago = $intereses - $montoPagado;
//                             if ($interesesMenosPago < 0) {//primero resto de los intereses, si sobre plata resto de la deuda
//                                 $total_adeudado = $total_adeudado + $interesesMenosPago;
//                                 $intereses = 0;
//                             } else {
//                                 //$total_adeudado queda igual, no alcanza para pagar
//                                 $intereses = $interesesMenosPago; //se reducen los intereses
//                             }
//                         }
//                     }
                }
                if ($sistemaLiq == 'DEFERRED') {
		    $monto_adeudado_anterior = $ultimo_installment_data['Installment']['previous_debt'];
                    $monto_vencido_anterior = $ultimo_installment_data['Installment']['amount'];
		    $interesesAnteriores = $ultimo_installment_data['Installment']['interest'];

		    $diasDesdePrincipioMes = $expen->gapDates($fechaInstallment->format('Y') . "-" . $fechaInstallment->format('m') . "-" . "1");
		    $interesesDeudaPrevia  =  $diasDesdePrincipioMes * ($building_data['PaymentDue']['annual_rate'] / 365) * ($interesesAnteriores + $monto_adeudado_anterior + $monto_vencido_anterior - $montoPagado);
                 
		    //CALCULO FINAL
                            $total_adeudado = $interesesAnteriores + $monto_adeudado_anterior + $monto_vencido_anterior - $montoPagado; 
			    $intereses = $interesesDeudaPrevia;

//                     if ($building->pagoAntesDeFechaVencimiento($diaPrimerVencimiento, $fechaDePago)) {
//                         $monto_vencido_anterior = $ultimo_installment_data['Installment']['amount'];
//                         $total_adeudado = $monto_adeudado_anterior + $monto_vencido_anterior - $montoPagado; //CALCULO FINAL
//                     } else {
//                         if ($building->pagoAntesDeFechaVencimiento($diaSegundoVencimiento, $fechaDePago)) {
//                             $monto_vencido_anterior = $ultimo_installment_data['Installment']['first_due_amount']; //esta columna no esta, deberia estar??? TODO
//                             $total_adeudado = $monto_adeudado_anterior + $monto_vencido_anterior - $montoPagado; //CALCULO FINAL
//                         } else {//LA MORA LA CALCULO DESPUES DEL SEGUNDO VENCIMIENTO
//                             $monto_vencido_anterior = $ultimo_installment_data['Installment']['second_due_amount'];
//                             $diasDeAtraso = $expen->gapDatesPeriodo($fechaInstallment->format('Y') . "-" . $fechaInstallment->format('m') . "-" . $diaSegundoVencimiento, $fechaDePago);
// 
//                             //CALCULO FINAL
//                             $total_adeudado = $monto_adeudado_anterior + $monto_vencido_anterior - $montoPagado;
//                             $intereses = $diasDeAtraso * ($building_data['PaymentDue']['annual_rate'] / 365) * $total_adeudado; //en este caso, todo el interes pasa para el mes proximo. DIFERIDO!
//                         }
//                     }
                }
            }

	  $result[0]=round($total_adeudado,2);
	  $result[1]=round($intereses,2);
	  return $result;

  }


}
?>
